Miscellaneous Info

iziBasic Syntax

Legend:
n is Number or Defined Constant
v is NumVar (A-Z or a user defined NumVar with the DIM statement)
f is NumFunction
c is TextVar (A$-Z$ or a user defined TextVar with the DIM statement)
t is Text
s is TextFunction

v|n is either NumVar, Number or Defined Constant
c|t|s is either TextVar, Text or TextFunction
and so on...

Notes:

Variables Assignment and Calculation:
In statements, v|n or c|t cannot be an aggregate of calculations. So, in iziBasic, you should work this way (with an example):

C=3*COS(B)+5 : D=MAX(A,B)
IF C < D PRINT "OK"
E=MIN(A,B) : E=5*MAX(C,E)

When with some other Basic compilers or interpreters you could do:

IF 3*COS(B)+5 < MAX(A,B) PRINT "OK"
E=5*MAX(C,MIN(A,B))

Compiling directives, statements and functions in GREEN (also marked with a little $ glyph for those using a black & white screen) are only available in the full version of iziBasic.


iziBasic Source Code Skeleton

iziBasic requires you to put these very few lines to detect and compile a minimum source code:

' YourProgramName.ibas
{CREATORID "XXXX"}
BEGIN
END

Notes:

But, you might rather want to use the Source Code Skeleton wizard which is provided by iziBasic to ease this skeleton setup.


Math Operators and Precedence

iziBasic recognizes the following operators, with their level of precedence given (1=lowest and 6=highest):

-6 unary minus sign
^5 exponentiation
*4 multiplication
/4 division
\4 integer division
 MOD 4 modulus (remainder) arithmetic
+3 addition
-3 subtraction
=2 equality
<>2 inequality
<2 less than
>2 greater than
<=2 less than or equal to
>=2 greater than or equal to
AND1 conjunction
OR1 disjunction
XOR1 exclusive or


Defined Constants

TRUE is 1
FALSE is 0
MAYBE is 0.5
EXP is 2.718281828
PI is 3.141592654
VERSION iziBasic version, format is M.m (Major.minor)


Test Operators

= equality
<> inequality
< less than
> greater than
<= less than or equal to
>= greater than or equal to


Labels

label:

Notes:

Advice:
Make sure that none of your labels starts with a reserved keyword. For example, CloseMyForm: or GoToMySubRoutine: are not good (and will lead to strange behaviors either at compilation time or at execution time!) when MyFormClose and JumpToMySubRoutine are valid. A good practice/trick to make sure this does not happen is to prefix all your labels with a set of characters like "lbl" (which stands for LaBeL) or the "_" (underscore) character. lblCloseMyForm or _GotoMySubRoutine are valid labels.


Statements

SingleStatement [: SingleStatement] [...]

Notes: